package juego;

/**
 * Clase espejo
 * @author Daniel Goldberg, Maria Eugenia Cura.
 */
public abstract class Espejo extends Elemento{
	
	/** La rotacion. */
	protected int rotacion;
	
	/**
	 * Rebotar.
	 * 
	 * @param l1 Laser
	 * 
	 * @return true si rebota
	 */
	public abstract boolean rebotar(Laser l1);
	
	/**
	 * Cambiar rotacion.
	 * 
	 * @param rotacionNueva nueva rotacion a cambiar
	 */
	public void cambiarRotacion(int rotacionNueva){
		rotacion = rotacionNueva;
	}
	
	/**
	 * Sumar rotacion. Cuando hace click en una celda le suma uno a la rotacion del espejo
	 */
	public abstract void sumarRotacion();
	
	/**
	 * Validar rotacion.
	 * 
	 * @param rot la rotacion
	 * 
	 * @return true si es una rotacion valida para el espejo.
	 */
	public abstract boolean validarRotacion(int rot);
	
	public abstract int[] getReturn(int anterior);
	
	public abstract String toStringGuardar();
	
}
